home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / scripts / rt-tester / t4-l2-pi-deboost.tst < prev    next >
Encoding:
Text File  |  2008-12-24  |  2.1 KB  |  124 lines

  1. #
  2. # rt-mutex test
  3. #
  4. # Op: C(ommand)/T(est)/W(ait)
  5. # |  opcode
  6. # |  |     threadid: 0-7
  7. # |  |     |  opcode argument
  8. # |  |     |  |
  9. # C: lock: 0: 0
  10. #
  11. # Commands
  12. #
  13. # opcode    opcode argument
  14. # schedother    nice value
  15. # schedfifo    priority
  16. # lock        lock nr (0-7)
  17. # locknowait    lock nr (0-7)
  18. # lockint    lock nr (0-7)
  19. # lockintnowait    lock nr (0-7)
  20. # lockcont    lock nr (0-7)
  21. # unlock    lock nr (0-7)
  22. # lockbkl    lock nr (0-7)
  23. # unlockbkl    lock nr (0-7)
  24. # signal    thread to signal (0-7)
  25. # reset        0
  26. # resetevent    0
  27. #
  28. # Tests / Wait
  29. #
  30. # opcode    opcode argument
  31. #
  32. # prioeq    priority
  33. # priolt    priority
  34. # priogt    priority
  35. # nprioeq    normal priority
  36. # npriolt    normal priority
  37. # npriogt    normal priority
  38. # locked    lock nr (0-7)
  39. # blocked    lock nr (0-7)
  40. # blockedwake    lock nr (0-7)
  41. # unlocked    lock nr (0-7)
  42. # lockedbkl    dont care
  43. # blockedbkl    dont care
  44. # unlockedbkl    dont care
  45. # opcodeeq    command opcode or number
  46. # opcodelt    number
  47. # opcodegt    number
  48. # eventeq    number
  49. # eventgt    number
  50. # eventlt    number
  51.  
  52. #
  53. # 4 threads 2 lock PI
  54. #
  55. C: resetevent:        0:     0
  56. W: opcodeeq:        0:     0
  57.  
  58. # Set schedulers
  59. C: schedother:        0:     0
  60. C: schedother:        1:     0
  61. C: schedfifo:        2:     82
  62. C: schedfifo:        3:     83
  63.  
  64. # T0 lock L0
  65. C: locknowait:        0:     0
  66. W: locked:        0:     0
  67.  
  68. # T1 lock L1
  69. C: locknowait:        1:     1
  70. W: locked:        1:     1
  71.  
  72. # T3 lock L0
  73. C: lockintnowait:    3:     0
  74. W: blocked:        3:     0
  75. T: prioeq:        0:     83
  76.  
  77. # T0 lock L1
  78. C: lock:        0:     1
  79. W: blocked:        0:     1
  80. T: prioeq:        1:     83
  81.  
  82. # T1 unlock L1
  83. C: unlock:        1:    1
  84.  
  85. # Wait until T0 is in the wakeup code
  86. W: blockedwake:        0:    1
  87.  
  88. # Verify that T1 is unboosted
  89. W: unlocked:        1:     1
  90. T: priolt:        1:     1
  91.  
  92. # T2 lock L1 (T0 is boosted and pending owner !)
  93. C: locknowait:        2:    1
  94. W: blocked:        2:     1
  95. T: prioeq:        0:     83
  96.  
  97. # Interrupt T3 and wait until T3 returned
  98. C: signal:        3:    0
  99. W: unlocked:        3:    0
  100.  
  101. # Verify prio of T0 (still pending owner,
  102. # but T2 is enqueued due to the previous boost by T3
  103. T: prioeq:        0:    82
  104.  
  105. # Let T0 continue
  106. C: lockcont:        0:    1
  107. W: locked:        0:    1
  108.  
  109. # Unlock L1 and let T2 get L1
  110. C: unlock:        0:    1
  111. W: locked:        2:    1
  112.  
  113. # Verify that T0 is unboosted
  114. W: unlocked:        0:    1
  115. T: priolt:        0:    1
  116.  
  117. # Unlock everything and exit
  118. C: unlock:        2:    1
  119. W: unlocked:        2:    1
  120.  
  121. C: unlock:        0:    0
  122. W: unlocked:        0:    0
  123.  
  124.